package pattern.factory.simplefactory;

import pattern.factory.ICourse;
import pattern.factory.JavaCourse;
import pattern.factory.PythonCourse;

/**
 * 课程简单工厂
 * @author: jxj
 * @create: 2019-04-19
 **/
public class CourseFactory {
//    /**
//     * 创建课程 通过传入字符串来确定创建的课程
//     * @param name 课程名称
//     * @return
//     */
//    public ICourse create(String name){
//        if("java".equals(name)){
//            return new JavaCourse();
//        }else if("python".equals(name)){
//            return new PythonCourse();
//        }else{
//            return null;
//        }
//    }

//    /**
//     * 通过类名创建课程
//     * @param className
//     * @return
//     */
//    public ICourse create(String className){
//        try {
//            if(!(null==className || "".equals(className))){
//                return (ICourse) Class.forName(className).newInstance();
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        return null;
//    }

    /**
     * 通过Class直接创建课程
      * @param clazz
     * @return
     */
      public ICourse create(Class<? extends ICourse> clazz){
            try{
                if(null!=clazz){
                    return clazz.newInstance();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
            return  null;
      }

}
